<?php
  /**
   * This class provides server specific methods.<br />
   *
   * @version 1.0 beta
   * @author Dany Mottier
   *
   * @see <a href="http://fr2.php.net/manual/en/book.iisfunc.php">online documentation</a>
   */
  abstract class IIS {
    /**
     * Creates a new virtual web server.<br />
     *
     * @param string $path No documentation is provided.
     * @param string $comment No documentation is provided.
     * @param string $ip No documentation is provided.
     * @param integer $port No documentation is provided.
     * @param string $hostname No documentation is provided.
     * @param integer $rights No documentation is provided.
     * @param integer $start No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-add-server.php">iis_add_server()</a>
     */
    public function AddServer($path,
                              $comment,
                              $ip,
                              $port,
                              $hostname,
                              $rights,
                              $start) {
      return iis_add_server($path,
                            $comment,
                            $ip,
                            $port,
                            $hostname,
                            $rights,
                            $start);
    }

    /**
     * Gets Directory Security.<br />
     *
     * @param integer $server_instance No documentation is provided.
     * @param string $virtual_path No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-get-dir-security.php">iis_get_dir_security()</a>
     */
    public function GetDirectorySecurity($server_instance, $virtual_path) {
      return iis_get_dir_security($server_instance, $virtual_path);
    }

    /**
     * Gets script mapping on a virtual directory for a specific extension.<br />
     *
     * @param integer $server_instance No documentation is provided.
     * @param string $virtual_path No documentation is provided.
     * @param string $script_extension No documentation is provided.
     *
     * @return string No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-get-script-map.php">iis_get_script_map()</a>
     */
    public function GetScriptMapping($server_instance, $virtual_path, $script_extension) {
      return iis_get_script_map($server_instance, $virtual_path, $script_extension);
    }

    /**
     * Returns the instance number associated with the comment.<br />
     * @param string $comment No documentation is provided.
     * @return integer No documentation is provided.<br /><br />
     * @see <a href="http://fr2.php.net/manual/en/function.iis-get-server-by-comment.php">iis_get_server_by_comment()</a>
     */
    public function GetServerByComment($comment) {
      return iis_get_server_by_comment($comment);
    }

    /**
     * Returns the instance number associated with the path.<br />
     *
     * @param string $path No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-get-server-by-path.php">iis_get_server_by_path()</a>
     */
    public function GetServerByPath($path) {
      return iis_get_server_by_path($path);
    }

    /**
     * Gets server rights.<br />
     *
     * @param integer $server_instance No documentation is provided.
     * @param string $virtual_path No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-get-server-rights.php">iis_get_server_rights()</a>
     */
    public function GetServerRights($server_instance, $virtual_path) {
      return iis_get_server_rights($server_instance, $virtual_path);
    }

    /**
     * Returns the state for the service defined by ServiceId.<br />
     *
     * @param string $service_id No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-get-service-state.php">iis_get_service_state()</a>
     */
    public function GetServiceState($service_id) {
      return iis_get_service_state($service_id);
    }

    /**
     * Removes the virtual web server indicated by ServerInstance.<br />
     *
     * @param integer $server_instance No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-remove-server.php">iis_remove_server()</a>
     */
    public function RemoveServer($server_instance) {
      return iis_remove_server($server_instance);
    }

    /**
     * Creates application scope for a virtual directory.<br />
     *
     * @param integer $server_instance No documentation is provided.
     * @param string $virtual_path No documentation is provided.
     * @param string $application_scope No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-set-app-settings.php">iis_set_app_settings()</a>
     */
    public function SetApplicationSettings($server_instance,
                                           $virtual_path,
                                           $application_scope) {
      return iis_set_app_settings($server_instance,
                                  $virtual_path,
                                  $application_scope);
    }

    /**
     * Sets Directory Security.<br />
     *
     * @param integer $server_instance No documentation is provided.
     * @param string $virtual_path No documentation is provided.
     * @param integer $directory_flags No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-set-dir-security.php">iis_set_dir_security()</a>
     */
    public function SetDirectorySecurity($server_instance,
                                         $virtual_path,
                                         $directory_flags) {
      return iis_set_dir_security($server_instance,
                                  $virtual_path,
                                  $directory_flags);
    }

    /**
     * Sets script mapping on a virtual directory.<br />
     *
     * @param integer $server_instance No documentation is provided.
     * @param string $virtual_path No documentation is provided.
     * @param string $script_extension No documentation is provided.
     * @param string $engine_path No documentation is provided.
     * @param integer $allow_scripting No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-set-script-map.php">iis_set_script_map()</a>
     */
    public function SetScriptMapping($server_instance,
                                     $virtual_path,
                                     $script_extension,
                                     $engine_path,
                                     $allow_scripting) {
      return iis_set_script_map($server_instance,
                                $virtual_path,
                                $script_extension,
                                $engine_path,
                                $allow_scripting);
    }

    /**
     * Sets server rights.<br />
     *
     * @param integer $server_instance No documentation is provided.
     * @param string $virtual_path No documentation is provided.
     * @param integer $directory_flags No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-set-server-rights.php">iis_set_server_rights()</a>
     */
    public function SetServerRights($server_instance,
                                    $virtual_path,
                                    $directory_flags) {
      return iis_set_server_rights($server_instance,
                                   $virtual_path,
                                   $directory_flags);
    }

    /**
     * Starts the virtual web server.<br />
     *
     * @param integer $server_instance No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-start-server.php">iis_start_server()</a>
     */
    public function StartServer($server_instance) {
      return iis_start_server($server_instance);
    }

    /**
     * Starts the service defined by $service_id.<br />
     *
     * @param string $service_id No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-start-service.php">iis_start_service()</a>
     */
    public function StartService($service_id) {
      return iis_start_service($service_id);
    }

    /**
     * Stops the virtual web server.<br />
     *
     * @param integer $server_instance No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-stop-server.php">iis_stop_server()</a>
     */
    public function StopServer($server_instance) {
      return iis_stop_server($server_instance);
    }

    /**
     * Stops the service defined by service_id.<br />
     *
     * @param string $service_id No documentation is provided.
     *
     * @return integer No documentation is provided.<br /><br />
     *
     * @see <a href="http://fr2.php.net/manual/en/function.iis-stop-service.php">iis_stop_service()</a>
     */
    public function StopService() {
      return iis_stop_service();
    }
  }
?>
